#ifndef STM32F1_ARCH_H_
#define STM32F1_ARCH_H_

static inline void __enable_interrupt()         { __asm__ volatile ("cpsie i"); }
static inline void __disable_interrupt()        { __asm__ volatile ("cpsid i"); }

static inline void __enable_fault_irq()         { __asm__ volatile ("cpsie f"); }
static inline void __disable_fault_irq()        { __asm__ volatile ("cpsid f"); }

static inline void __NOP()                      { __asm__ volatile ("nop"); }
static inline void __WFI()                      { __asm__ volatile ("wfi"); }
static inline void __WFE()                      { __asm__ volatile ("wfe"); }
static inline void __SEV()                      { __asm__ volatile ("sev"); }
static inline void __ISB()                      { __asm__ volatile ("isb"); }
static inline void __DSB()                      { __asm__ volatile ("dsb"); }
static inline void __DMB()                      { __asm__ volatile ("dmb"); }
static inline void __CLREX()                    { __asm__ volatile ("clrex"); }


#endif /* STM32F1_ARCH_H_ */

